﻿// owner 蒋家伟

#pragma once
#include "WeakPtr.h"
#include "IDocument.h"
#include "ElementNotifyUtils.h"
#include "IElementChangedEventArgs.h"

namespace jsdk
{
    class ElementChangedEventArgs : public IElementChangedEventArgs
    {
    public:
        ElementChangedEventArgs(const IDocument* pDoc, ChangedStatusUMap&& changedMaps);
        ~ElementChangedEventArgs() {};
        virtual const ChangedStatusUMap& getChangedMaps() const override;
        virtual const IDocument* getDocument() const override;

    private:
        ChangedStatusUMap m_changedMaps;
        WeakPtr<const IDocument> m_wpDoc = nullptr;
    };
}
